/**
 * Created by seeker910 on 2017/6/17.
 * 向导步骤 基类
 */
Rsd.define('Rsd.container.Guider', {
    extend: 'Rsd.container.Component',
    xtype: 'guider',
    cls: 'x-guider', 
    bodyTagName: 'div',
    layout:'fit', 
    /**
     * 窗口标题，一般用于介绍当前步骤概要信息
     */
    title:'',
    header:{
        height:35, 
        lineHeight:35, 
        style:
            {
                textAlign:'center', 
                color:'#000000',
                backgroundColor:'#c4cfcdab',
            }
    },
    /**
     * 步骤标题
     */
    stepTitle:'',
    /*
    * Guider所在父容器
    * */
    dialog:null,
    /*
    * {
    *   text:'上一步',
        visible:true,
        fn:function(){return ture;}
    * }
    * */
    //previousStep:{}

    /*
    * {
    *   text:'下一步',
    *   visible:true,
    *   fn:function (){return true;}
    * }
    * */
    //nextStep:{}
    /** 
     * 在点击上一步 或 下一步 时，自动加载页面
     * true:页面展示后自动执行load方法。用于加载时不需要设置参数。
     * false:页面展示后不自动执行load方法，需要调用load方法加载。用于加载时需要设置参数。
     * */
    //autoLoad:true,
    /**
     * 在页面加载时触发
     */
    onLoad:null,
    /*
    *
    * */
    constructor: function Guider(config) {

        config = config || {};
        this.apply(config);
        this.hidden = true;
    },
    /**
     * 
     */
    load:function load(callback)
     {
        if(callback)
         {
            callback(this);
         }
        alert('请在子类中 重写 load(callback)'); 
     },
     /**
      * 
      * @param {*} callback 
      */
     onLoad:function onLoad(dialog,callback)
     {
         if(callback)
         {
            callback(this);
         }
        alert('请在子类中 重写 onLoad'); 
     },
    /** 
     * @description 获取该步骤数据
     * */
    getData:function getData() {
        alert('请在子类中 重写 getData');
        return null;
    }
      
},function (type) {

    var _previousStepGetter = function () {
        return this.__previousStep || {
            text:'上一步',
                visible:true,
                guider:this,
                fn:function () {
                    return true;
            }};
    };

    var _previousStepSetter = function (value) {
        this.__previousStep = Rsd.apply(this.previousStep,value);
    }

    this.defineProperty(type, "previousStep", _previousStepGetter, _previousStepSetter, true);


    var _nextStepGetter = function () {
        return this.__nextStep || {
                text:'下一步',
                visible:true,
                guider:this,
                fn:function () {
                    return true;
                }};
    };
    var _nextStepSetter = function (value) {
        this.__nextStep = Rsd.apply(this.nextStep,value);
    }

    this.defineProperty(type, "nextStep", _nextStepGetter, _nextStepSetter, true);

    this.defineProperty(type,'autoLoad',function(){return this.__autoLoad==undefined || this.__autoLoad;},function(autoLoad){
        this.__autoLoad = autoLoad;
    },false);
});